package com.css.dzj.dzjap.modules.project.supervision.service;

import com.css.dzj.dzjap.modules.project.supervision.entity.Supervision;
import com.css.dzj.dzjap.modules.publick.entity.ApPublicEntity;
import com.querydsl.core.QueryResults;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * 监管工作
 *
 * @author liyuan
 */
public interface SupervisionService {

    /**
     * 多条件分页查询
     *
     * @param proName
     * @param projectType
     * @param suType
     * @param checkStatus
     * @param reportStatus
     * @param suCreateUser
     * @param suTime
     * @param projectAddress
     * @param pageable
     * @return
     */
    QueryResults<Supervision> getPage(String proName, String projectType,
                                      String suType, String checkStatus,
                                      String reportStatus, String suCreateUser,
                                      String suTime, String projectAddress,
                                      String orgLevel, Pageable pageable);

    /**
     * 根据Id查询备案表信息
     *
     * @param id
     * @return
     */
    Supervision queryById(String id);

    /**
     * 批量新增-->未用到
     *
     * @param supervision
     */
    void save(List<Supervision> supervision);

    /**
     * 单个新增
     *
     * @param supervision
     */
    void save(Supervision supervision);

    /**
     * 修改
     *
     * @param supervision
     */
    void update(Supervision supervision);

    /**
     * 审核，添加审核结果：0同意、1不同意；审核意见
     *
     * @param supervision
     */
    void check(Supervision supervision);

    /**
     * 逻辑删除
     */
    void logicDel(String id);

    /**
     * 根据ID修改上报状态
     *
     * @param id
     */
    void updateReportStatus(String id);

    /**
     * 根据ID修改提交状态
     * 更新审核状态为1：已提交待审核
     *
     * @param id
     */
    void updateSubmitStatus(String id);

    /**
     * 根据ID修改提交状态，撤回对应0
     *
     * @param id
     */
    void recallSubmitStatus(String id);

    /**
     * 开展监管，中国地震局用户添加拟制公告
     *
     * @param apPublicEntity
     */
    void addPublick(ApPublicEntity apPublicEntity);

    /**
     * 开展监管，中国地震局用户查看公告
     *
     * @param Id
     * @return
     */
    ApPublicEntity viewPublickBySuId(String Id);
}
